<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="rurple.css" type="text/css" />

<title>About RUR-PLE</title>
</head>
<body>
<h2 class="title">Learning Python: Child's Play with RUR-PLE!</h2>
<h6>André Roberge, © 2005-2010</h6>
<h3 class="section">About RUR-PLE</h3>

<p>Simply put, RUR-PLE is a Python Learning Environment. With the
assistance of a robot named Reeborg, one can explore the fun of
programming in the Python language. A standard Python interpreter
is also included as well as an editor with a special "instant run"
feature.</p>

<h3 class="section">A bit of history</h3>

<p>The word "robot" entered our language through the 1920 play
R.U.R. (Rossum's Universal Robots) by Czech writer Karel Capek.
Little did Capek know how widespread the word <i>robot</i> would become!</p>

<p>Karel Capek's name became known in computer circles in 1981, when 
Richard Pattis wrote a delightful little book titled 
<em>Karel the Robot, a Gentle Introduction to the Art of Programming</em>. 
In this book, Pattis introduces the main concepts of sequential programming
(including loops and decisions, but not variable assignments)
using the paradigm of instructing a robot capable of only four
basic actions (turning left, moving one step forward, picking up
and putting down beepers). Through the magic of programming, the
robot learns to combine those four basic actions in order to
accomplish tasks of increasing complexity. Pattis used Pascal,
the preferred language of the day, as a means of "teaching" the
robot new tricks. Since then, many new versions of Karel the
Robot have appeared, used to introducing various computer
languages, notably Java and C++, which are both based on the
modern <em>Object-Oriented Programming</em> (OOP) approach.</p>

<p>However, since the complexity of Java and C++ contrasts with
the simplicity of the robot world, these languages seem at odds
with the idea of providing <em>a Gentle Introduction to the Art
of Programming</em>.</p>

<p>Enter Python!... Named after the famous Monty Python's Flying
Circus by its creator, Guido van Rossum. Python, like Java and
C++, is an OOP language. However Python also allows a non-OOP
programming style more suitable for interacting with Pattis's
robot. A first implementation of Karel the Robot in Python was
called PyKarel. The current implementation is called Guido van
Robot (GvR for short), and is available at sourceforge.net.</p>

<p><em>RUR: a Python Learning Environment</em> 
(RUR-PLE <i>or</i> Rur-ple <i>or</i> rur-ple) 
is a "new and improved" version of GvR that extends Pattis' ideas 
and allows a smooth transition to the use of variables as well as
functions/methods, classes and objects. Rur-ple is a complete
environment, its lessons cover the use of all of Python's
keywords. A Python interpreter and simple editor are included to
explore Python outside the robot's world.</p>

<p><em>Reeborg</em> is a robot built on the 1981 Pattis' model
... and it is starting to show its age. It has an oil leak, which
allows us to follow its trail. Its compass is broken; it only
knows if it is facing north or not, unlike Karel or Guido who
could determine their orientation with respect to all four
cardinal points.</p>

<p>Pattis' Karel the Robot was named after the author Karel
Capek, who popularized the word robot in his play Rossum's
Universal Robots (RUR). While RUR-PLE shares the basic RUR
acronym, in this case it stands for <em>Roberge's Used
Robot</em>. However, through the magic of Guido van Rossum's
Python, you can learn how to fix it and design a better one,
worthy of the name <em>Rossum's Universal Robot</em>.</p>

<div class="lessons_nav">
<a href="rur.htm"><img alt="home" src=
"../images/home.png" /></a>
</div>
</body>
</html>
